home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
wedits22.zip
/
WETAG.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-08-13
|
5KB
|
185 lines
UNIT WETag; {$O+}
{ -- This is the Tag Lines unit of WWIVEdit 2.2
-- Last Updated: 8/13/91
-- Written By:
-- Adam Caldwell
--
-- This code is limited public domain. See WWIVEDIT.PAS for details.
--
-- Purpose : Input/Manipulate the Taglines
--
-- Known Errors : None
--
-- Planned Enhancements: Clean Up Code, Add a FORCE option
--
-- }
{$R-,V-,S-,B-,E-,N-} { These Optomize things as much as possible }
INTERFACE
PROCEDURE EditTaglines;
IMPLEMENTATION
USES WEVars, WEInput, WEOutput, WEString, WEMisc;
PROCEDURE EditTaglines;
{ Edit and Select Taglines }
CONST
NMethods = 6;
Methods : ARRAY[0..NMethods] OF String[40] = (
'Don''t use any Tagline ',
'Always use Tagline #1 ',
'Always use Tagline #2 ',
'Always use Tagline #3 ',
'Rotate among defined Taglines ',
'Choose one at random ',
'Don''t use Tagline for this message only');
VAR
i : integer;
ch : char;
TagS:string;
fun:edfun;
changed:boolean;
t:inforec;
BEGIN
t:=info;
changed:=false;
ClrScr;
FOR i:=1 TO 3 DO
BEGIN
Prompt(C5+'Tagline number '+C2);
CASE i OF
1 : print('one:');
2 : print('two:');
3 : print('three:');
END;
ansic('0');
IF info.Tagline[i]<>'' THEN BEGIN
PrintControlLine(info.TagLine[i]);
nl;
END
ELSE
Print(c1+'<<<None Entered>>>'+C0);
nl;
END;
FOR i:=0 TO NMethods DO
BEGIN
IF info.Method = i THEN Ansic('4') ELSE Ansic('1');
prompt(methods[i]);
ansic('0');
IF info.Method = i
THEN print(' <-- Currently Selected')
ELSE nl;
END;
REPEAT
StatusLine3(C2+'Tag Line: '+C1+'M'+C2+'ake, '+C1+'E'+C2+'rase, '+
C1+'C'+C2+'hoose, '+C1+'Q'+C2+'uit [MEQ] > '+C1);
ch:=ReadSet(['M','E','Q','C',ESC]);
IF ch='E' THEN BEGIN
StatusLine3(C2+'Erase Tagline: '+c1+'1'+c2+', '+c1+'2'+c2+', '+c1+'3'+
C2+', or '+C1+'A'+c2+'bort > ');
ch:=readset(['1'..'3','A',ESC,'Q']);
IF ch IN ['1'..'3'] THEN BEGIN
info.Tagline[ord(ch)-ord('0')]:='';
StatusLine2(c5+'Tagline '+c1+ch+c5+' erased');
gotoxy(1,3*(ord(ch)-ord('0')-1)+2);
ClrEol;
Print(c1+'<<<None Entered>>>'+C0);
changed:=true;
AfterNext:=ClrStatLine2;
END;
END;
IF ch='C' THEN BEGIN
i:=info.method;
REPEAT
GotoXY(1,10+i);
fun:=GetArrow;
ansic('1');
IF Fun IN [up,down] THEN
Prompt(methods[i]);
CASE Fun OF
Up : dec(i);
Down : inc(i);
END;
IF i<0 THEN i:=NMethods
ELSE IF i>NMethods THEN i:=0;
IF fun IN [Up,Down] THEN
BEGIN
GotoXY(1,10+i);
ansic('4');
prompt(methods[i]);
END;
UNTIL fun IN [Enter,NormalExit];
IF fun=Enter THEN BEGIN
if info.method<>i THEN changed:=true;
gotoxy(40,10+info.method);
clreol;
info.method:=i;
gotoxy(1,10+i);
print(C4+methods[i]+C0+' <-- Currently Selected');
IF info.selected>3 THEN info.selected:=1;
END
ELSE if i<>info.method THEN
BEGIN
print(c0+methods[i]);
gotoxy(1,10+info.method);
print(c4+methods[info.method]+c0);
END;
END;
IF ch='M' THEN BEGIN
StatusLine3(C2+'Enter Tagline. Press '+C3+'Ctrl-Z'+C2+' when finished.');
TagS:=GetControlLine;
StatusLine2(c0);
PrintControlLine(TagS);
StatusLine3(C5+'Which Tagline do you want to save this under? [1,2,3,Q] > '+C1);
ch:=ReadSet(['1'..'3','Q']);
IF ch='Q' THEN BEGIN
StatusLine2(C2+'Nothing Saved...');
AfterNext:=ClrStatLine2;
ch:=#0;
END
ELSE BEGIN
changed:=true;
i:=Value(ch);
gotoxy(1,3*(i-1)+2);
PrintControlLine(TagS);
ClrEol;
info.Tagline[i]:=TagS;
StatusLine2(C0);
END;
END;
UNTIL ch IN ['Q',ESC];
IF changed THEN BEGIN
IF Info.method=5 THEN BEGIN
info.selected:=Random(3)+1;
IF Info.Tagline[info.selected]='' THEN BEGIN
FOR i:=1 TO 3 DO
IF info.tagline[i]<>'' THEN info.selected:=i;
END;
END
ELSE IF Info.method=4 THEN
BEGIN
Info.selected:=1;
FOR i:=3 DOWNTO 1 DO
IF info.tagline[i]<>'' THEN info.selected:=i;
END ELSE IF info.method<4 THEN
info.selected:=info.method;
IF (Info.method IN [4,5]) AND (info.tagline[info.selected]='') THEN
info.selected:=1;
StatusLine3(c5+'Do you want to save your changes? [Yn] > ');
IF yn THEN BEGIN
SaveInfo;
StatusLine3(c5+'Saved.');
END ELSE BEGIN
StatusLine3(c2+'Not Saved.');
info:=t;
END;
END;
AfterNext:=ClrStatLine3;
END;
END.